// 在Node中,每个模块内部都有一个自己的module对象
// 该module对象中,有个成员叫exports(默认是空对象),也是一个对象.如下:
// 也就是说如果你需要对外导出成员,只需要把导出的成员挂载到module.exports中
// 后来发现,每次导出成员的方式都通过module.exports.xxx = xxx 点的太多太麻烦
// 于是Node为了简化代码,专门提供了一个变量 exports = module.exports

// let module = {
//   exports: {
//      foo: 'bar',
//      function () {
//        return 'Hello';
//      }
//   }
// };


// 也就是说在模块中还有这么一句代码
// let exports = module.exports
module.exports.foo = 'bar';
module.exports.add = function () {
  return 'Hello';
};

// 两者一致,那么就说明,我可以使用任意一方放来导出成员
console.log(exports === module.exports); // true

// 谁来require我,谁就得到我
// 因为默认在代码最后一句:
// return module.exports;
// 一定要记住,最后return的是module.exports 而不是exports这个变量,所以
// 当一个模块需要导出单个对象的时候
// 直接给exports赋值是不管用的

// exports = 'hello'; // 不管用

